package com.registerserver.service;

import java.io.IOException;
import java.rmi.Remote;
import java.rmi.RemoteException;
import java.sql.Date;
import java.sql.SQLException;
import java.util.List;

import com.registerserver.dto.CourseRegisteredInfo;
import com.registerserver.dto.SubjectAndMark;
import com.registerserver.model.Course;
import com.registerserver.model.Student;

public interface IService extends Remote{
	
	public List<CourseRegisteredInfo> getCourseRegisteredInfo(String studentID) throws SQLException, RemoteException;
	
	public double getOverAllMarkOfStudent(String studentID) throws SQLException,RemoteException;
	
	public Student getStudentInfoByID(String studentID) throws SQLException, IOException,RemoteException;
	
	public int addNewStudying(String subjectID, Course course, Student studentm, Date registerDate, double mark) throws SQLException,RemoteException;
	
	public boolean updateStudying(String subjectID, Course course, Student student) throws SQLException,RemoteException;
	
	public boolean updateMark(String studentID, String subjectID, String courseID) throws SQLException,RemoteException;
	
	public int deleteStudying(String studentID, String subjectID, String courseID) throws SQLException,RemoteException;
	
	public int countStudentRegistered(String courseID, String subjectID) throws SQLException,RemoteException;
	
	public int getMaxSizeOfCourse() throws SQLException,RemoteException;
	
	public double getMark() throws SQLException,RemoteException;
	
	public List<SubjectAndMark> getMarkOfAllSubject(String studentID) throws SQLException,RemoteException;
	
}
